var express = require("express");
var router = express.Router();
const {userModel} =require("../../models/db");
const Core = require("@alicloud/pop-core"); // 引入阿里云 SDKA
const { log } = require("debug/src/browser");

//王成鑫获取用户数据
router.get("/getUser", async(req, res) => {
  let data=await userModel.find();
  res.send({
    data
  });
});






//登陆
const users = {}; // 存储当前已登录用户的电话号码\
router.post("/login", async (req, res) => {
  const { telephone, password } = req.body;
  console.log(telephone);
  // 查询数据库中是否存在该用户
  let findUser = await userModel.findOne({ telephone });
  
  if (findUser) {
    // 用户存在
    if (findUser.password === password) {
      // 密码正确
      if (users[telephone]) {
        // 用户已经登录
        res.send({
          code: 300,
          msg: "用户已经登录",
          data: findUser
        });
      } else {
        // 用户未登录，记录登录状态并发送登录成功消息
        users[telephone] = true;
        res.send({
          code: 200,
          msg: "登录成功",
          data: findUser,
        });
      }
    } else {
      // 密码错误
      res.send({
        code: 400,
        msg: "密码错误",
      });
    }
  } else {
    // 用户不存在
    res.send({
      code: 404,
      msg: "用户名不存在",
    });
  }
});

//获取信息
router.get("/user/:id", async (req, res) => {
  let id = req.params.id;
  console.log(id, "++++++++++");
  let data = await userModel.findOne({ _id: id });
  res.send({
    code: 200,
    data: data,
  });
});
//修改端口
router.put("/userEdit/:id", async (req, res) => {
  let id = req.params.id;
  let data = req.body;
  await userModel.updateOne({ _id: id }, data);
  res.send({
    code: 200,
    msg: "修改成功",
  });
});

const client = new Core({
  // 创建 Client 对象
  accessKeyId: "LTAI5tLnnrwie7APy5Je9BVm", // 替换成自己的 AccessKey ID
  accessKeySecret: "JrO45yNAjPP6a43XOUVeYx3ZzqDfbq", // 替换成自己的 AccessKey Secret
  endpoint: "https://dysmsapi.aliyuncs.com", // API 访问入口，根据实际情况修改
  apiVersion: "2017-05-25", // API 版本号，根据实际情况修改
});

// 生成随机验证码
function generateCode() {
  const characters = "0123456789";
  let code = "";

  for (let i = 0; i < 6; i++) {
    const randomIndex = Math.floor(Math.random() * characters.length);
    code += characters.charAt(randomIndex);
  }

  return code;
}

// 发送短信验证码
router.post("/sendCode", (req, res) => {
  const phoneNumber = req.body.phoneNumber; // 获取手机号码
  console.log(phoneNumber, "++++");
  const code = generateCode(); // 生成验证码
  const params = {
    RegionId: "cn-hangzhou", // 短信服务所在区域，可以参考阿里云文档
    PhoneNumbers: phoneNumber, // 目标手机号码
    SignName: "宠盟", // 短信签名名称，需先在阿里云控制台中申请审核通过
    TemplateCode: "SMS_465333469", // 短信模板 CODE，需先在阿里云控制台中申请审核通过
    TemplateParam: JSON.stringify({
      // 短信模板参数，为 JSON 字符串格式
      code: code, // 模板中的变量名和对应的值
    }),
  };

  const requestOption = {
    // 设置请求超时时间等选项
    method: "POST",
    timeout: 5000,
  };
  // 调用 SendSms 方法发送短信
  client.request("SendSms", params, requestOption).then(
    (result) => {
      console.log(result); // 打印发送结果

      res.status(200).json({
        // 返回状态码和生成的验证码
        message: "验证码已发送，请注意查收！",
        code: code,
      });
    },
    (ex) => {
      console.log(ex); // 打印异常信息

      res.status(500).json({
        // 返回错误状态码和错误信息
        message: "短信发送失败，请稍后重试！",
      });
    }
  );
});

//注册
router.post("/register", async (req, res) => {
  const data = req.body;
  await userModel.create(data);
  res.send({
    code: 200,
    msg: "注册成功",
  });
});

/* GET users listing. */
router.get("/", function (req, res, next) {
  res.send("respond with a resource");
});

module.exports = router;
